package com.zh.business.base.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "AttachmentDTO", description = "附件数据传输实体")
public class AttachmentDTO {

    @ApiModelProperty("id，业务绑定附件必传")
    private Integer id;

    /**
     * 业务id
     */
    @ApiModelProperty("业务id,前台不传")
    private String busId;

    /**
     * 业务名，如“user,teacher,student,chapter等”
     */
    @ApiModelProperty("业务名，如“user,teacher,student,chapter等，必传")
    private String busName;

    /**
     * 附件类型，用于区分一个业务表单多个上传实例的情况区分
     */
    @ApiModelProperty("附件类型，用于区分一个业务表单多个上传实例的情况区分，必传")
    private String busFileCategory;

    /**
     * 文件名
     */
    @ApiModelProperty("文件名")
    private String fileRealName;

    /**
     * 保存后的文件名
     */
    @ApiModelProperty("保存后的文件名")
    private String fileStoreName;

    /**
     * 唯一名称，oss中对应key,本地存储时对应相对路径
     */
    @ApiModelProperty("唯一名称，oss中对应key,本地存储时对应相对路径")
    private String objectKey;

    /**
     * 文件类型
     */
    @ApiModelProperty("文件类型")
    private String fileType;

    /**
     * 文件大小，以kb为单位
     */
    @ApiModelProperty("文件大小，以kb为单位")
    private Integer fileSize;

    /**
     * 排序号，默认升序
     */
    @ApiModelProperty("排序号")
    private Integer sort;

    /**
     * 修改人
     */
    @ApiModelProperty("修改人")
    private Integer lastUpdateBy;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间，格式yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastUpdateTime;

    /**
     * 创建人
     */
    @ApiModelProperty("id")
    private Integer createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间,格式yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;

    /**
     * 上传类型，local标识本地物理文件上传，oss标识阿里云上传
     */
    @ApiModelProperty("上传类型，local标识本地物理文件上传，oss标识阿里云上传")
    private String uploadType;
}